(function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/client:plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();

/* Google+ Access Handler */
function googlePlusAccessHandler(authResult) {
    if (authResult) {
        if (authResult["error"] === undefined) {            
            gapi.auth.setToken(authResult);     // Memorizza il token restituito.
            
            // Carica le librerie oauth2 per abilitare i metodi userinfo.
            gapi.client.load('oauth2', 'v2', function() {
                var request = gapi.client.oauth2.userinfo.get();
                request.execute(function(obj) {
                    GPConnectedHandler(obj);
                });
            });

        } 
        else {
            // Si è verificato un errore.
            // Possibili codici di errore:
            //   "access_denied" - L"utente ha negato l"accesso alla tua app
            //   "immediate_failed" - Impossibile eseguire l"accesso automatico dell"utente
            GPAccessErrorHandler(authResult["error"], authResult["error_description"]);
        }
    }
    else {
        GPNotAuthorizedHandler();
    }
}
/* /Google+ Access Handler */

function GPAccessErrorHandler(error, error_description) {
    console.log("There was an error: " + error + "(" + error_description + ")");
}

function GPNotAuthorizedHandler() {
    console.log("Empty authResult");  // Qualcosa è andato storto
}

function GPConnectedHandler(response) {
    console.log("Logged in G+: ");
}